#ifndef __TYPES_H
#define __TYPES_H

#include <stdint.h>
#include <type_traits>

namespace utils::types {

template <typename T>
inline constexpr bool IsInt =
    std::is_same_v<uint8_t, T> || std::is_same_v<int8_t, T> ||
    std::is_same_v<uint16_t, T> || std::is_same_v<int16_t, T> ||
    std::is_same_v<uint32_t, T> || std::is_same_v<int32_t, T>;

template <typename T, size_t SIZE>
inline constexpr bool IsIntSize = IsInt<T> && (sizeof(T) == SIZE);

} // namespace utils::types

#endif
